
/**
 * 概率数据返回类
 * 返回1概率50%，返回2概率30%，返回3概率15%，返回4概率10%，返回5概率5%
 */
class Probability {
    /**
     * 获取随机结果
     * @returns {number} 返回1-5的数字
     */
    getRandomResult() {
      // 生成0-1之间的随机数
      const random = Math.random();
      
      // 累积概率判断
      if (random < 0.5) {
        return 1; // 50%概率
      } else if (random < 0.8) {
        return 2; // 30%概率 (0.5-0.8)
      } else if (random < 0.95) {
        return 3; // 15%概率 (0.8-0.95)
      } else if (random < 0.995) {
        return 4; // 4.5%概率 (0.95-0.995)
      } else {
        return 5; // 0.5%概率 (0.995-1.0)
      }
    }
    
    /**
     * 测试概率分布
     * @param {number} times 测试次数
     */
    testDistribution(times = 10000) {
      const results = {1: 0, 2: 0, 3: 0, 4: 0, 5: 0};
      
      for (let i = 0; i < times; i++) {
        const result = this.getRandomResult();
        results[result]++;
      }
      
      console.log('概率分布测试结果:');
      console.log(`1: ${(results[1] / times * 100).toFixed(1)}%`);
      console.log(`2: ${(results[2] / times * 100).toFixed(1)}%`);
      console.log(`3: ${(results[3] / times * 100).toFixed(1)}%`);
      console.log(`4: ${(results[4] / times * 100).toFixed(1)}%`);
      console.log(`5: ${(results[5] / times * 100).toFixed(1)}%`);
    }
  }
  
// module.exports = Probability;
  // 导出单例实例
export default new Probability();